﻿using Abp.Application.Services;
using FwProject.Shop.Dto;
using FwProject.ShopApplication;
using FwProject.ShoppingMall.Shop;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using X.PagedList;

namespace FwProject.Shop
{
    public interface IShopTagAppService : IApplicationService
    {
        /// <summary>
        /// 标签列表
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        Task<LayerDataBaseDto> GetLayerDataAsync(int page, int limit, TagTypeEnum? tagType);

        /// <summary>
        /// 创建标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<Guid> CreateAsync(ShopTagInput input);

        /// <summary>
        /// 修改标签
        /// </summary>
        /// <param name="id"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        Task ModifyAsync(Guid id, ShopTagInput input);

        /// <summary>
        /// 删除标签
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteAsync(Guid id);

        /// <summary>
        /// 获取一个输入模型
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<ShopTagInput> GetEnterDtoAsync(Guid id);

        /// <summary>
        /// 切换启用
        /// </summary>
        /// <param name="id"></param>
        /// <param name="active"></param>
        /// <returns></returns>
        Task SwitchActive(Guid id, bool active);

        /// <summary>
        /// app获取标签的查询接口
        /// </summary>
        /// <param name="page"></param>
        /// <param name="pagesize"></param>
        /// <returns></returns>
        Task<IPagedList<ShopTagDto>> GetAppShopTag(int page, int pagesize);
    }
}
